﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for UsuariosBLL
/// </summary>
public class UsuariosBLL
{
	public UsuariosBLL()
	{
		//
		// TODO: Add constructor logic here
		//
	}

    public static Usuarios rowToDto(dsUsuarios.UsuariosDSRow UsuariosRow)
    {

        Usuarios objUsuarios = new Usuarios();
        objUsuarios.IUsuario_id = UsuariosRow.iUsuario_id;
        objUsuarios.SNombreUsuario = UsuariosRow.sNombreUsuario;
        objUsuarios.SPassword = UsuariosRow.sPassword;
        objUsuarios.IPersona_id = UsuariosRow.iPersona_id;
        objUsuarios.IRol_id = UsuariosRow.iRol_id;


        return objUsuarios;
    }
    public static List<Usuarios> GetAll()
    {
        List<Usuarios> ListaDeUsuarios = new List<Usuarios>();
        try
        {



            dsUsuariosTableAdapters.UsuariosDSTableAdapter UsuariosAdapter
                = new dsUsuariosTableAdapters.UsuariosDSTableAdapter();
            dsUsuarios.UsuariosDSDataTable UsuariosDataTable = UsuariosAdapter.GetAll_Usuarios();

            foreach (dsUsuarios.UsuariosDSRow row in UsuariosDataTable)
            {
                Usuarios objUsuarios = rowToDto(row);
                ListaDeUsuarios.Add(objUsuarios);
            }
        }
        catch (Exception ex)
        {

            //Manejar Excepcion
        }
        return ListaDeUsuarios;
    }
    public static Usuarios GetByPK(int pk)
    {

        try
        {

            dsUsuariosTableAdapters.UsuariosDSTableAdapter UsuariosAdapter
                = new dsUsuariosTableAdapters.UsuariosDSTableAdapter();
            dsUsuarios.UsuariosDSDataTable UsuariosDataTable
                = UsuariosAdapter.GetByPk_Usuarios(pk);

            Usuarios objUsuarios = rowToDto(UsuariosDataTable[0]);
            return objUsuarios;
        }
        catch (Exception ex)
        {

            //Manejar Excepcion
        }
        return null;
    }

    public static int InsertarUsuarios(string sNombreUsuario, string sPassword, int iPersona_id, int iRol_id)
    {

        try
        {

            dsUsuariosTableAdapters.UsuariosDSTableAdapter UsuariosAdapter
                = new dsUsuariosTableAdapters.UsuariosDSTableAdapter();


            int? nuevaPK = 0;

            UsuariosAdapter.Insertar_Usuarios(sNombreUsuario, sPassword, iPersona_id, iRol_id, ref nuevaPK);

            return (int)nuevaPK;
        }
        catch (Exception ex)
        {

            //Manejar Excepcion
        }
        return 0;
    }

    public static bool ModificarUsuarios(int pk, string sNombreUsuario, string sPassword, int iPersona_id, int iRol_id)
    {

        try
        {

            dsUsuariosTableAdapters.UsuariosDSTableAdapter UsuariosAdapter
                = new dsUsuariosTableAdapters.UsuariosDSTableAdapter();

            UsuariosAdapter.Modificar_Usuarios(pk, sNombreUsuario, sPassword, iPersona_id, iRol_id);


            return true;
        }
        catch (Exception ex)
        {

            //Manejar Excepcion
        }
        return false;
    }

    public static bool EliminarUsuarios(int pk)
    {

        try
        {

            dsUsuariosTableAdapters.UsuariosDSTableAdapter UsuariosAdapter
                = new dsUsuariosTableAdapters.UsuariosDSTableAdapter();

            UsuariosAdapter.Eliminar_Usuarios(pk);


            return true;
        }
        catch (Exception ex)
        {

            //Manejar Excepcion
        }
        return false;
    }

    public Usuarios Autentificar_Usuario(string sNombreUsuario, string sPassword)
    {
        //dsUsuariosTableAdapters.UsuariosDSTableAdapter UsuariosAdapter = new dsUsuariosTableAdapters.UsuariosDSTableAdapter();
        //Object autentificado = UsuariosAdapter.GetByUserName_Usuarios(sNombreUsuario, sPassword);
        //return (Usuarios)autentificado;
        try
        {

            dsUsuariosTableAdapters.UsuariosDSTableAdapter UsuariosAdapter
                = new dsUsuariosTableAdapters.UsuariosDSTableAdapter();
            dsUsuarios.UsuariosDSDataTable UsuariosDataTable
                = (dsUsuarios.UsuariosDSDataTable)UsuariosAdapter.GetByUserName_Usuarios(sNombreUsuario, sPassword);

            Usuarios objUsuarios = rowToDto(UsuariosDataTable[0]);
            return objUsuarios;
        }
        catch (Exception ex)
        {

            //Manejar Excepcion
        }
        return null;
       
    }
}